<?php

/**
 * 这个文件用来演示工厂模式
 *
 * User: ford
 * Date: 15-8-6
 * Time: 下午2:41
 */

/**
 * 明白了，所谓工厂模式，就是创建一个类，动态地管理其他的类的生成
 * 当然，要包含其他类的定义文件才能使用。
 * 这个类还应当加入异常处理，在接收到不合适的参数时抛出异常
 * 这个类不需要被实现，直接调用其中的静态方法即可
 *
 * Class ShapeFactory
 */
abstract class ShapeFactory {
	//创建一个静态方法用来创建对象，还可以用factory(),factoryMethod()或createInstance()来命名

	static function Create($type, array $sizes) {
		switch ($type) {
			case 'retangle':
				return new Rectangle($sizes[0], $sizes[1]);
				break;
			case 'triangle':
				return new Triangle($sizes[0], $sizes[1], $sizes[2]);
				break;

		}
	}
}